package com.sgcc.activiti.service;

import java.text.ParseException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.sgcc.activiti.domain.OAnomalyStat;
import com.sgcc.activiti.domain.PendingLeaderboards;
import com.sgcc.activiti.domain.vo.DateSlot;

/**
 * 看板统计 Service接口
 * 
 * @author sgcc
 * @date 2021-04-07
 */
public interface IOAnomalyStatService 
{
    /**
     * 查询看板统计 
     * 
     * @param statDate 看板统计 ID
     * @return 看板统计 
     */
    public OAnomalyStat selectOAnomalyStatById(String statDate);

    /**
     * 查询看板统计 列表
     * 
     * @param oAnomalyStat 看板统计 
     * @return 看板统计 集合
     */
    public List<OAnomalyStat> selectOAnomalyStatList(OAnomalyStat oAnomalyStat);

    /**
     * 新增看板统计 
     * 
     * @param oAnomalyStat 看板统计 
     * @return 结果
     */
    public int insertOAnomalyStat(OAnomalyStat oAnomalyStat);

    /**
     * 修改看板统计 
     * 
     * @param oAnomalyStat 看板统计 
     * @return 结果
     */
    public int updateOAnomalyStat(OAnomalyStat oAnomalyStat);

    /**
     * 批量删除看板统计 
     * 
     * @param statDates 需要删除的看板统计 ID
     * @return 结果
     */
    public int deleteOAnomalyStatByIds(String[] statDates);

    /**
     * 删除看板统计 信息
     * 
     * @param statDate 看板统计 ID
     * @return 结果
     */
    public int deleteOAnomalyStatById(String statDate);

    Map getMonitorCount(PendingLeaderboards pendingLeaderboards);

    List<HashMap<String, String>> getSystemMonitoring();

    List<HashMap<String, String>> monitoringType();

    List<HashMap<String, String>> pendingException(PendingLeaderboards pendingLeaderboards);

    List<PendingLeaderboards> pendingLeaderboards(PendingLeaderboards pendingLeaderboards);

    List<HashMap<String, String>> getPendingSystem(String monsyscode, String monsystype);

    List<HashMap<String, Object>> getPendingSystemforhistogram(String monsyscode, String monsystype, String alltime, String dt) throws ParseException;

    List<HashMap<String, Object>> getMonTypePercentage(String monsystype);

    List<HashMap<String, String>> getSysAbnormalRank(DateSlot dateSlot);

    List<HashMap<String, String>> getSysAbnormalTrend(String type, DateSlot dateSlot);

    void updateOAnomalyStatTask();
}
